package com.cyy.common.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.cyy.common.pojo.dto.ArchiveDto;
import com.cyy.common.pojo.query.system.SystemArticleVo;
import com.cyy.common.pojo.entity.Article;
import com.cyy.common.pojo.query.system.SystemArticleQuery;
import com.cyy.common.pojo.vo.api.ApiArchiveVo;
import com.cyy.common.pojo.vo.api.ApiArticleVo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

/**
 * <p>
 * 博客文章表 Mapper 接口
 * </p>
 *
 * @author 曹云友
 * @since 2024-04-01
 */
@Mapper
public interface ArticleMapper extends BaseMapper<Article> {

    IPage<ApiArticleVo> queryPage(@Param("page") Page<?> page,
                                  @Param("type") String type,
                                  @Param("businessId") Integer businessId,
                                  @Param("userId") Integer userId);

    IPage<SystemArticleVo> getPage(@Param("page") Page<?> page,
                                   @Param("query") SystemArticleQuery query,
                                   @Param("userId") Integer userId);

    IPage<ApiArchiveVo> pageArchiveVos(@Param("page") Page<?> page);

    List<ArchiveDto> selectArchiveDtosByIds(@Param("articleIds") Set<String> articleIds);
}
